#ifndef OCCT_CAD_OCCVERTEXSELECTOR_H
#define OCCT_CAD_OCCVERTEXSELECTOR_H
#include "TopoDS_Shape.hxx"
#include "OccGeoSelector.h"
#include "TopoDS.hxx"

class OccVertexSelector : public OccGeoSelector{
public:

    OccVertexSelector();

    ~OccVertexSelector();


public:
    //添加选中的shape
    bool addSelectedShape(const TopoDS_Shape& vertexShape) override;

    //获取当前第一个Vertex
    const TopoDS_Vertex& getFirstSelected();

    //获取所有的Vertex,以Shape的方式返回
    std::vector<TopoDS_Shape> getSelectedVertices();

    //检查元素是否合法
    bool isDataValid();

    //删除已选中的元素
    bool deleteSelectedShape(const TopoDS_Shape& shape) override;

    //清除所有选中
    void clearSelectedShape();

    const TopoDS_Shape& getSelectedShape() override;

//signals:
//    void sentVertex(TopoDS_Vertex& vertex);

private:

    std::vector<TopoDS_Shape> m_selectedVertices;


};


#endif //OCCT_CAD_OCCVERTEXSELECTOR_H#pragma once
